package com.zzw.dao;

import com.zzw.bean.Menu;
import com.zzw.bean.MenuExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface MenuMapper {

    public List<Menu> selectMenuRootElement();

    public List<Menu> selectMenuChildElement(Menu menu);

    public List<Menu> selectMenuNode(Menu menu);

    List<Menu> selectMenuNodeByUserId(@Param("menu") Menu menu, @Param("userId") Integer userId);

    /**
     * 根据角色ID查询菜单节点，并标记该角色已拥有的菜单
     * @param menu 菜单信息，包括父节点ID
     * @param roleId 角色ID
     * @return 菜单节点列表
     */
    public List<Menu> selectMenuNodeByRoleId(@Param("menu") Menu menu, @Param("roleId") Integer roleId);

    long countByExample(MenuExample example);

    int deleteByExample(MenuExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Menu record);

    int insertSelective(Menu record);

    List<Menu> selectByExample(MenuExample example);

    Menu selectByPrimaryKey(Integer id);

    Integer selectParentIdById(Integer id);

    int updateByExampleSelective(@Param("record") Menu record, @Param("example") MenuExample example);

    int updateByExample(@Param("record") Menu record, @Param("example") MenuExample example);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);

}
